import request from '@/utils/request'

/**
 * 添加商品
 * 接口：POST /api/admin/goods/add
 * @param {FormData} data - 商品信息（FormData格式，支持文件和普通字段）
 * @param {string} data.code 商品编码（必填）
 * @param {number} data.category_id 分类ID（必填）
 * @param {string} data.name 商品名称（必填）
 * @param {File} data.main_img 主图文件（必填）
 * @param {File[]} data.goods_img 商品图片文件数组（必填）
 * @param {string} data.goods_info 商品详情（必填）
 * @param {number} data.status 状态（1上架2下架，必填）
 * @param {string} [data.sub_name] 副标题
 * @param {number} [data.sort] 排序
 * @param {number} [data.show_position] 展示区域
 * @param {string} [data.reason] 说明
 * @returns {Promise<Object>}
 * 返回示例：
 * {
 *   "code": 200,
 *   "message": "添加成功",
 *   "data": { "id": 1, "name": "商品名称", ... }
 * }
 */
export function addGoods(data) {
  return request({
    url: '/api/admin/goods/add',
    method: 'post',
    data,
    headers: {
      'Content-Type': 'multipart/form-data',
    },
  })
}

/**
 * 删除商品
 * 接口：DELETE /api/admin/goods/del
 * @param {number} id 商品ID（必填）
 * @returns {Promise<Object>}
 * 返回示例：
 * {
 *   "code": 200,
 *   "message": "删除成功",
 *   "data": null
 * }
 */
export function deleteGoods(id) {
  return request({
    url: '/api/admin/goods/del',
    method: 'delete',
    data: { id },
  })
}

/**
 * 编辑商品
 * 接口：POST /api/admin/goods/edit
 * @param {Object} data - 商品信息，需包含id
 * @returns {Promise<Object>}
 * 返回示例：同添加商品
 */
export function editGoods(data) {
  return request({
    url: '/api/admin/goods/edit',
    method: 'post',
    data,
  })
}

/**
 * 获取商品详情
 * 接口：GET /api/admin/goods/info
 * @param {number} id 商品ID（必填）
 * @returns {Promise<Object>}
 * 返回示例：同添加商品
 */
export function getGoodsInfo(id) {
  return request({
    url: '/api/admin/goods/info',
    method: 'get',
    params: { id },
  })
}

/**
 * 获取商品列表
 * 接口：GET /api/admin/goods/lists
 * @param {Object} params - 查询参数，可选：code、category_id、name、status、start_time、end_time、page、size
 * @returns {Promise<Object>}
 * 返回示例：
 * {
 *   "code": 200,
 *   "message": "获取成功",
 *   "data": {
 *     "total": 100,
 *     "size": 15,
 *     "current_page": 1,
 *     "last_page": 7,
 *     "list": [ { "id": 1, "name": "商品1", ... }, ... ]
 *   }
 * }
 */
export function getGoodsList(params) {
  return request({
    url: '/api/admin/goods/lists',
    method: 'get',
    params,
  })
}

/**
 * 批量更新商品状态
 * 接口：PATCH /api/admin/goods/batch-status
 * @param {Object} data
 * @param {string} data.id 商品ID，逗号分隔（必填）
 * @param {number} data.type 状态（1上架2下架，必填）
 * @returns {Promise<Object>}
 * 返回示例：
 * {
 *   "code": 200,
 *   "message": "操作成功",
 *   "data": null
 * }
 */
export function batchUpdateGoodsStatus(data) {
  return request({
    url: '/api/admin/goods/batchStatus',
    method: 'patch',
    data,
  })
}

// /admin/goodsCategory/lists
export function getGoodsCategoryList(params) {
  return request({
    url: '/api/admin/goodsCategory/lists',
    method: 'get',
    params,
  })
}
